import asyncio
from pyppeteer import connect
from pyppeteer.errors import BrowserError
import bitbrowser_api as api
import ai_api

async def get_facebook_messages_img(ws_address):
    browser = None
    try:
        # 连接到已有的浏览器实例
        browser = await connect({'browserWSEndpoint': ws_address})
        page = await browser.newPage()
        
        # 设置页面视图大小
        await page.setViewport({'width': 1200, 'height': 800})
        
        # 导航到Facebook消息页面
        await page.goto('https://www.facebook.com/marketplace/inbox/?targetTab=SELLER', {
            'waitUntil': 'networkidle2',
            'timeout': 60000
        })
        
        # 等待页面加载
        await page.waitForSelector('body', {'timeout': 30000})
        
        # 生成截图文件名
        import time
        timestamp = int(time.time())
        screenshot_path = f'facebook_screenshot_{timestamp}.png'
        
        # 截图并保存
        await page.screenshot({
            'path': f"./Temp/{screenshot_path}",
            'fullPage': True
        })

        return f"./Temp/{screenshot_path}"
        
    except BrowserError as e:
        print(f"浏览器连接错误: {str(e)}")
    except Exception as e:
        print(f"获取截图时发生错误: {str(e)}")
    finally:
        if browser:
            await browser.disconnect()
    
    return ""

def get_message(id):
    data :str= ""
    message :str = ""
    ws_link = api.get_pyppeteer_wslink_by_ids(id)
    img = asyncio.run(get_facebook_messages_img(ws_link))
    message += f"=================窗口序号:{api.get_name_by_id(id)}=================\n"
    data = ai_api.get_ocr_result(img)
    message += ai_api.AI_chatV2(f"你是一个分析师和格式转换器,有数据{data},把他转换成[消息:发送人 换行 消息内容]的格式,每个消息占一行,已知位置和下面的定位还有范围/车船/房地产租赁/乐器/免费商品/分类广告/办公用品/园艺和户外用品/娱乐/宠物用品/家居用品,家居装修用品,家庭房产销售,服装,爱好,玩具与游戏,电子产品,商品交易小组这些都不是消息;如果没有聊天就显示没有消息")
    return message


# 示例使用
if __name__ == "__main__":
    # 使用时替换为实际的WebSocket地址
    # messages = asyncio.get_event_loop().run_until_complete(get_facebook_messages_img(ws_url))
    messages = get_message(api.get_alive_ids()[0])
    print("获取到的消息:")
    print(messages)